// vuex的权限模块
import { constantRoutes, asyncRoutes } from '@/router'
// vuex中的permission模块用来存放当前的 静态路由 + 当前用户的 权限路由
const state = {
  // routes表示当前人的路由权限
  routes: constantRoutes // 所有人默认拥有静态路由
}
const mutations = {
  // newRouters用户登录获取新路由
  setRouters(state, newRouters) {
    // 每个人当前的静态路由和动态路由
    state.routes = [...constantRoutes, ...newRouters]
    // 需要得到当前newRouters才能调用
  }
}
const actions = {
  // 删选路由模块 menus是当前用户资料menus标识 代表用户所拥有的权限
  filterRouters(context, menus) {
    // menus ['setting','salary']
    // asyncRoutes [{name:}]
    var routers = []
    menus.forEach(item => {
      // item 是字符串 去找asyncRoutes里面有没有路由name的字符串
      // 匹配成功去添加到当前用户筛选之后的动态路由中
      routers.push(...asyncRoutes.filter(route => route.name === item))
    })
    // routers就是新得到的删选路由提交mutations
    context.commit('setRouters', routers)
    return routers // 之后用到这个return
    // 这里为什么还要return  state数据 是用来 显示左侧菜单用的
    // return 是给路由addRoutes用的
  }
}
export default {
  namespaced: true,
  state,
  mutations,
  actions
}
